/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import modelo.LigaUsuarioConsumidor;
import modelo.Usuario;
import negocio.LigarUsuarioBI;
import negocio.UsuarioBI;
import pojos.InvitacionLigasVO;

/**
 *
 * @author Francisco
 */
@ManagedBean(name="aceptarLigaCtrl")
@ViewScoped
public class AceptarLigaCtrl {
    
    @Inject
    private UsuarioBI usuarioBI;
    @Inject
    private LigarUsuarioBI ligarUsuarioBI;
    
    private LoginCtrl login;
    private Usuario usuario;
    private List<InvitacionLigasVO> invitaciones;
    private InvitacionLigasVO invitacionSeleccionada = new InvitacionLigasVO();
    
    @PostConstruct
    public void init(){
        try{
            login = (LoginCtrl)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("login");
            String nombreUsuario = login.getUsuario();
            usuario = usuarioBI.buscarUsuario(nombreUsuario);
            List<LigaUsuarioConsumidor> ligasUsu = ligarUsuarioBI.buscarLigasPorUsuarioEstatus(usuario.getIdUsuario(), "P");
            invitaciones = new ArrayList<InvitacionLigasVO>();
            if(ligasUsu!=null){
                for (LigaUsuarioConsumidor ligaUsuarioConsumidor : ligasUsu) {
                    InvitacionLigasVO invitacion = new InvitacionLigasVO();
                    invitacion.setIdLigausuarioConsumidor(ligaUsuarioConsumidor.getIdLigaUsuarioConsumidor());
                    invitacion.setNombreConsumidor(ligaUsuarioConsumidor.getIdConsumidor().getNombre());
                    invitacion.setNombreUsuario(ligaUsuarioConsumidor.getIdConsumidor().getIdUsuario().getNombreUsuario());
                    invitacion.setPermisoConsumo(ligaUsuarioConsumidor.getPermisoConsumo()==1);
                    invitacion.setPermisoIngreso(ligaUsuarioConsumidor.getPermisoIngreso()==1);
                    invitaciones.add(invitacion);
                }
            }
        }catch(Exception e){
            FacesContext.getCurrentInstance()
                    .addMessage(null, 
                        new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", e.getMessage()));
        }
    }
    
    public void aceptarRechazar(String estatus){
        try{
            ligarUsuarioBI.aceptarRechazarLiga(invitacionSeleccionada.getIdLigausuarioConsumidor(), estatus);
            init();
            FacesContext.getCurrentInstance()
                    .addMessage(null, 
                        new FacesMessage(FacesMessage.SEVERITY_INFO, "Listo", "Guardado con éxito"));
        }catch(Exception e){
            FacesContext.getCurrentInstance()
                    .addMessage(null, 
                        new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", e.getMessage()));
        }
    }

    public List<InvitacionLigasVO> getInvitaciones() {
        return invitaciones;
    }

    public void setInvitaciones(List<InvitacionLigasVO> invitaciones) {
        this.invitaciones = invitaciones;
    }

    public InvitacionLigasVO getInvitacionSeleccionada() {
        return invitacionSeleccionada;
    }

    public void setInvitacionSeleccionada(InvitacionLigasVO invitacionSeleccionada) {
        this.invitacionSeleccionada = invitacionSeleccionada;
    }
    
}
